package com.qfmy.model.entity.listenBook;

import com.qfmy.model.entity.user.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author 清风明月
 * @Package com.qfmy.model.entity.audio
 * @date 2025/11/01
 * @description 音频资源表实体类（映射数据库audio_resource表）
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AudioResource extends BaseEntity {

    @Schema(description = "音频ID（主键）")
    private Long audioId;

    @Schema(description = "音频标题（如“三体1：地球往事”）")
    private String title;

    @Schema(description = "原著作者（默认“未知作者”）")
    private String author;

    @Schema(description = "朗读者（主播，默认“未知朗读者”）")
    private String narrator;

    @Schema(description = "所属分类ID（关联音频分类表audio_category，默认1为“其他”分类）")
    private Integer categoryId;

    @Schema(description = "封面图片URL（默认占位图：https://img.example.com/default-audio-cover.png）")
    private String cover;

    @Schema(description = "音频简介（默认空字符串）")
    private String description;

    @Schema(description = "音频时长（单位：秒，默认0表示未设置）")
    private Integer duration;

    @Schema(description = "音频文件大小（单位：字节，默认0表示未上传）")
    private Long fileSize;

    @Schema(description = "音频状态：0-下架，1-上线，2-审核中（默认审核中）")
    private Integer status;

    @Schema(description = "总播放次数（默认0）")
    private Integer playCount;

    @Schema(description = "章节数（默认0表示未设置）")
    private Integer chapterNum;

    @Schema(description = "音频类型：1-真人，2-Ai（默认1）")
    private Integer audioType;

    @Schema(description = "分类名称")
    private String categoryName;

    @Schema(description = "听书的评分")
    private Double score;

    @Schema(description = "听书完结状态")
    private Integer finishStatus;

    @Schema(description = "海报")
    private String poster;
}